//#include <stdio.h>
//#include <stdlib.h>
//#include <winsock2.h>
//#pragma comment(lib,"ws2_32.lib")
//
// struct sockaddr_in xxxAddr7101;
// char zzz[128] = "hello tcpip from 2021027101----";
//
//struct sockaddr_in addr1;
//char bRcvBuf[1500];
//
//int main(){
//    WORD wVersionRequested;
//    WSADATA wsaData;
//    int nRetCode = 0;
//    int socketfd = -1;
//    int nErrorCode;
//    
//    struct sockaddr_in destSocketAddr;
//    int nBytesTx;
//
//    struct sockaddr_in srcSocketAddr;
//	int nLen;
//    int nBytesRx;
//	char *pszIp;
//	WORD port;
//	int i;
//
//    wVersionRequested = 0x0202;
//    nRetCode = WSAStartup(wVersionRequested, &wsaData);
//    if (nRetCode != 0){
//        printf("WSAStartup failed with error: %d\n", nRetCode);
//        return -1;
//    }
//    else
//        printf("WSAStartup sucess to startup\n");
//
//    socketfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
//    if(socketfd <= 0){
//        WSACleanup();
//        return -1;
//    }
//    else
//        printf("create socket success = %d\n", socketfd);
//
//    memset(&addr1, 0, sizeof(struct sockaddr_in) );
//    addr1.sin_family = AF_INET;
//    addr1.sin_port = htons(3344);
//    addr1.sin_addr.s_addr = inet_addr("127.0.0.1");  
//    nRetCode = bind(socketfd, (SOCKADDR *)&addr1, sizeof(SOCKADDR));
//    if(0 != nRetCode){
//        printf("bind failure,reason:\n");
//		closesocket(socketfd);
//        WSACleanup();
//        return -1;
//    }    
//    else
//        printf("bind success = %d\n", socketfd);
//
//    while(1){
//        memset(bRcvBuf,0,1500);
//        memset(&srcSocketAddr, 0, sizeof(struct sockaddr_in) );
//        nLen = sizeof(struct sockaddr_in);
//        nBytesRx = recvfrom( socketfd, bRcvBuf, 1500, 0, (SOCKADDR *)&srcSocketAddr, &nLen );
//        if( 0 >= nBytesRx ){
//            printf("recvfrom failure,reason:\n");
//            printMsg_WSAGetLastError();
//            return -1;
//        }
//        else{      
//            printf("%s\n", bRcvBuf);
//            
//            pszIp = inet_ntoa(srcSocketAddr.sin_addr);
//            port = ntohs(srcSocketAddr.sin_port);
//            printf("[ip=%s,port=%d] --> [me] : recvfrom msglen=%d\n", pszIp, port, nBytesRx );
//        }        
//
//        //Sleep(1000);
//
//		for(i=0;i<nBytesRx;i++)
//			bRcvBuf[i] += 1;
//
//        nBytesTx=sendto( socketfd,bRcvBuf,nBytesRx,0,(SOCKADDR *) &srcSocketAddr,sizeof(SOCKADDR)  );
//        if(0 >= nBytesTx){
//            printf("send failure, reason:");
//            printMsg_WSAGetLastError();
//        }
//        else
//            printf("send success msglen = %d\n", nBytesTx);
//    }
//
//	system("pause");
//
//    closesocket(socketfd);
//	WSACleanup();
//    return 0;
//}
